package com.mk.config;

import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import cn.binarywang.wx.miniapp.config.impl.WxMaRedisBetterConfigImpl;
import lombok.RequiredArgsConstructor;
import me.chanjar.weixin.common.redis.RedisTemplateWxRedisOps;
import me.chanjar.weixin.common.redis.WxRedisOps;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.core.StringRedisTemplate;

/**
 * 微信小程序SDK
 */
@Configuration
@RequiredArgsConstructor
public class WxConfig {
    @Value("${sdt.wechat.appid}")
    private String appId;
    @Value("${sdt.wechat.secret}")
    private String secret;

    private final StringRedisTemplate stringRedisTemplate;

    @Bean(name = "wxMaService")
    public WxMaService wxMaService() {
        WxMaService wxMaService = new WxMaServiceImpl();
        WxRedisOps wxRedisOps = new RedisTemplateWxRedisOps(stringRedisTemplate);
        WxMaDefaultConfigImpl wxMaConfig = new WxMaRedisBetterConfigImpl(wxRedisOps, "consumer");
        wxMaConfig.setAppid(appId);
        wxMaConfig.setSecret(secret);
        wxMaService.setWxMaConfig(wxMaConfig);
        return wxMaService;
    }
}
